if (!String.prototype.format) {
    String.prototype.format = function() {
      let args = arguments;
      return this.replace(/{(\d+)}/g, function(match, number) {
        return typeof args[number] !== 'undefined' ? args[number] : match;
      });
    };
}
//let message = "Hello, {0}! You have {1} new messages.";
//console.log(message.format("Alice", 5)); // 输出: Hello, Alice! You have 5 new messages.

chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
  if (request.action === 'downloadImages') {
    const start = request.start;
    const end = request.end;
    const template = request.baseURL;
    const images = [];

    for (let i = start; i <= end; i++) {
      const url = template.format(i);
      console.log(url)
      
      // 这里你需要实现抓取页面并提取图片链接的逻辑
      // 假设你已经有一个函数 fetchImagesFromPage(url) 返回图片链接数组
    //   fetchImagesFromPage(url).then(pageImages => {
    //     images.push(...pageImages);

    //     if (i === end) {
    //       downloadAndZipImages(images);
    //     }
    //   }).catch(error => {
    //     console.error(`Error fetching images from ${url}:`, error);
    //   });
    }

    // // 示例函数：你需要自己实现这个部分，根据页面结构抓取图片链接
    // async function fetchImagesFromPage(pageUrl) {
    //   const response = await fetch(pageUrl);
    //   const text = await response.text();
    //   // 使用DOM解析器或正则表达式提取图片链接
    //   // 这里仅作为示例，返回固定链接数组
    //   return ['http://example.com/image1.jpg', 'http://example.com/image2.jpg'];
    // }

    // function downloadAndZipImages(imageUrls) {
    //   const zip = new JSZip();
    //   const imgFolder = zip.folder('images');

    //   Promise.all(imageUrls.map(url => {
    //     return fetch(url)
    //       .then(response => response.blob())
    //       .then(blob => {
    //         const imgName = url.split('/').pop();
    //         imgFolder.file(imgName, blob);
    //       });
    //   })).then(() => {
    //     zip.generateAsync({ type: 'blob' })
    //       .then(content => {
    //         fileSaver.saveAs(content, 'images.zip');
    //       });
    //   });
    // }

    sendResponse({ status: 'started' });
    return true;  // Keep the message channel open for sendResponse
  }
});